#ifndef RAYTYPES_H
#define RAYTYPES_H
#include "vector.h"		// need Vector3 definition

typedef struct
{
	float r, g, b;
	float dist;
} Color;

typedef struct
{
	Vector3 origin;
	float radius;
} Sphere;

typedef struct
{
	Vector3 normal;
	float dist;
} Plane;

typedef struct
{
	Vector3 origin;
	Vector3 normal;
	float radius;
} Disc;

typedef struct
{
	Vector3 origin; // center of box
	float x, y, z; // lengths of the sides
} Box;

typedef struct
{
	Vector3 origin; // position of the light
	float radius;
} Light;

typedef enum {t_light, t_box, t_sphere, t_plane, t_disc} ObjType;

typedef struct
{
	int active;

	ObjType type;
	Box box;
	Plane plane;
	Disc disc;
	Sphere sphere;
	Light light;

	Color color;
	float reflect;
	float specular;
} Object;

#endif // RAYTYPES_H
